package com.clear.factory.simpleFactory;


public class ResourceLoader {
    /**
     * @param url file://   http://    ftp://
     * @return 资源类
     */
    public Resource load(String url) {
        // 1.根据url获取前缀
        String prefix = getPrefix(url);

//        Resource resource = null;
//        // 2.根据前缀处理不同的资源
//        if ("http".equals(prefix)) {
//            // 发起请求下载资源  可能是很复杂的逻辑
//            // ....
//            return new Resource(url);
//        } else if ("file".equals(prefix)) {
//            // 可能是很复杂的逻辑
//            // ....
//            return new Resource(url);
//        } else if ("classpath".equals(prefix)) {
//            // 可能是很复杂的逻辑
//            // ....
//            return new Resource(url);
//        }
//        return resource;

        // todo 上述复杂的if else 业务逻辑都交给到了工厂

        // 2.根据前缀处理不同的资源
        Resource resource = ResourceFactory.create(prefix, url);
        return resource;
    }

    private String getPrefix(String url) {
        if (url == null || "".equals(url) || !url.contains(":")) {
            throw new ResourceLoadException("传入的资源url不合法");
        }
        String[] split = url.split(":");
        return split[0];
    }
}
